package com.googlecode.jvmpart;

import java.util.Collection;

import com.googlecode.jvmpart.proc.JvmProcessException;

/**
 * the interface for handling the jvm processes execute
 * @author chunzhan.he
 *
 */
public interface ProcessPartitionHandler {
	/**
	 * the interface that handle the jvm processes execute
	 * @param jvmSplitter jvm process spliter
	 * @param partitioner creating input parameters for a partitioned jvm process 
	 * @param processManager manage the process status persistent
	 * @return a collection of thread context for aggregate
	 * @throws JvmProcessException
	 */
	Collection<ProcessExecution> handle(ProcessExecutionSplitter jvmSplitter, Partitioner partitioner, ProcessManager processManager) throws JvmProcessException;
}
